package cn.itcast.dao;

import cn.itcast.entity.QueryPageBean;
import cn.itcast.pojo.Menu;
import cn.itcast.pojo.Permission;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MenuDao {
    /**
     * 查询所有菜单选项
     */
    List selectAll();


    /**
     * 根据id查询
     * @return
     */
    Menu selectMenuById(Integer id);

    /**
     * 分页查询
     * @param
     * @return
     */
    Page<Menu> selectByCondition(QueryPageBean queryPageBean);

    /**
     * 查询父类
     */
    List<Menu> selectParent();
    /**
     * 查询子类
     */
    List<Menu>selectChild(Integer id);


    /**
     * 保存餐单和权限相关联信息
     * @param menuId
     * @param permissionId
     */
    void setPermissionsAssociation(@Param("menuId") Integer menuId, @Param("permissionId") Integer permissionId);

    /**
     *  保存菜单信息
     * @param menu
     */
    void add(Menu menu);

    /**
     * 删除关联信息
     * @param id
     */
    void deletePermissionAssociation(Integer id);

    /**
     * 删除菜单信息
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 确认编辑
     * @param menu
     */
    void update(Menu menu);

    /**
     *根据id查询permission
     * @param id
     */
    Integer[] selectPermissionById(Integer id);
}
